package com.zsrt.java.day20170112.lh.homework;


import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.junit.Test;

public class SendEmail {
	
	public static void main(String[] args) throws MessagingException {
		
		
		Properties prop=new Properties();
		
		prop.put("mail.transport.protocol", "smtp");	// 指定协议
		prop.put("mail.smtp.host", "stmp.qq.com");		// 主机   stmp.qq.com
		prop.put("mail.smtp.port", 25);					// 端口
		prop.put("mail.smtp.auth", "true");				// 用户密码认证
		prop.put("mail.debug", "true");					// 调试模式
		
		//1. 创建一个邮件的会话
		Session session = Session.getDefaultInstance(prop);
		//2. 创建邮件体对象 (整封邮件对象)
		MimeMessage message = new MimeMessage(session);
		//3. 设置邮件体参数: 
		//3.1 标题
		message.setSubject("我的第一封邮件	");
		//3.2 邮件发送时间
		message.setSentDate(new Date());
		//3.3 发件人
		message.setSender(new InternetAddress("jiabaoyu6@qq.com"));
		//3.4 接收人
		message.setRecipient(RecipientType.TO, new InternetAddress("849319996@qq.com"));
		//3.5内容
		message.setText("你好，已经发送成功！  正文....");  // 简单纯文本邮件
		message.saveChanges();   // 保存邮件(可选)
		
		//4. 发送
		Transport trans = session.getTransport();
		trans.connect("zhangsan", "888");
		// 发送邮件
		trans.sendMessage(message, message.getAllRecipients());
		trans.close();
	}

	
	@Test
	public void testName() throws Exception {
		
	    // 配置发送邮件的环境属性
        final Properties props = new Properties();
        /*
         * 可用的属性： mail.store.protocol / mail.transport.protocol / mail.host /
         * mail.user / mail.from
         */
        // 表示SMTP发送邮件，需要进行身份验证
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.host", "smtp.163.com");
        // 发件人的账号
        props.put("mail.user", "jiabaoyu6@163.com");
        // 访问SMTP服务时需要提供的密码
        props.put("mail.password", "liu123");

        // 构建授权信息，用于进行SMTP进行身份验证
        Authenticator authenticator = new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // 用户名、密码
                String userName = props.getProperty("mail.user");
                String password = props.getProperty("mail.password");
                return new PasswordAuthentication(userName, password);
            }
        };
        // 使用环境属性和授权信息，创建邮件会话
        Session mailSession = Session.getInstance(props, authenticator);
        // 创建邮件消息
        MimeMessage message = new MimeMessage(mailSession);
        // 设置发件人
        InternetAddress form = new InternetAddress(
                props.getProperty("mail.user"));
        message.setFrom(form);

        // 设置收件人
        InternetAddress to = new InternetAddress("849319996@qq.com");
        message.setRecipient(RecipientType.TO, to);

        // 设置抄送
        InternetAddress cc = new InternetAddress("1218800603@qq.com");
        message.setRecipient(RecipientType.CC, cc);

    
        // 设置邮件标题
        message.setSubject("测试邮件");

        // 设置邮件的内容体
        message.setContent("<a href='http://www.fkjava.org'>测试的HTML邮件</a>", "text/html;charset=UTF-8");

        // 发送邮件
        Transport.send(message);
    }
	

}


